import Vue from 'vue';
import ElementUI from 'element-ui';
import 'element-ui/lib/theme-chalk/index.css';
import App from './App.vue';
import router from './router';
// 导入我们封装的HTTP请求模块和API模块
import http from './utils/http';
import api from './utils/api';

// 设置Vue配置
Vue.config.productionTip = false;

// 将HTTP请求模块和API模块添加到Vue原型中，方便组件调用
Vue.prototype.$http = http;
Vue.prototype.$api = api;

// 为了保持向后兼容，保留$axios引用
Vue.prototype.$axios = http;

// 注册ElementUI插件
Vue.use(ElementUI);

// 全局处理路由重复导航错误
const originalPush = router.push
router.push = function push(location) {
  return originalPush.call(this, location).catch(err => {
    // 忽略NavigationDuplicated错误
    if (err.name !== 'NavigationDuplicated') {
      throw err
    }
  })
}

// 创建Vue实例
new Vue({
    el: '#app',
    router,
    render: h => h(App)
});